<?php
/**
 * スケジュール登録コンポーネントクラスモジュール
 */
require_once 'Request/Request.php';
require_once dirname(__FILE__) . '/../Components.php';
require_once APPLICATION_PATH . '/views/Mappers/ScheduleMapper.php';
require_once APPLICATION_PATH . '/views/Mappers/PlaceMapper.php';

class Components_ScheduleRegist extends Components
{
	/** テンプレートファイル名 */
	const TEMPLATE_NAME = 'ScheduleRegist.tpl';

	/** 戻りＵＲＬ（カレンダー） */
	const URL_BACKTO_CALENDAR = '/Calendar/i2?ymd=%s';

	/** @var オブジェクト：予定データマッパー */
	protected $_objMapperSchedule;
	/** @var オブジェクト：地図データマッパークラス */
	protected $_objMapperPlace;

	/** @var 初期化状態 */
	protected $_bCondition;

	/**
	 * コンストラクタ
	 * Enter description here ...
	 * @param unknown_type $sCompileId
	 */
	public function __construct( $sCompileId)
	{
		$this->_bCondition = TRUE;

		parent::__construct(dirname(__FILE__), $sCompileId);

		/***
		 * 地図データ更新（新規登録チェックボックスがチェックされてる場合)
		 */
		$objRequest = new Lib_Request();
		if ( $objRequest->get(Mapper_Place::KEY_NEWMAP) == 'on') {
			$this->_objMapperPlace = new Mapper_Place();
			$bResult = $this->_objMapperPlace->putDataFromHttpRequest();
			if ( $bResult === FALSE ) {
				$this->_bCondition = FALSE;
				return;
			}
		}

		/***
		 * 予定データ登録
		 */
		$this->_objMapperSchedule = new Mapper_Schedule();
		$this->_objMapperSchedule->putFromHttpRequest();
	}

	/**
	 * フェッチ
	 * @see Smarty_Components::fetch()
	 */
	public function fetch()
	{
		$this->view->CONDITION = $this->_bCondition;
		$this->view->CALENDAR_URL = $this->_createBackToCalendarUrl();
		$sHtml = parent::fetch(self::TEMPLATE_NAME);
		return $sHtml;
	}

	/**
	 * 登録成功後の戻りＵＲＬ（カレンダーページ）作成
	 * Enter description here ...
	 */
	protected function _createBackToCalendarUrl()
	{
		$objRequest = new Lib_Request_DateTime();
		$sResultUrl = sprintf(self::URL_BACKTO_CALENDAR, $objRequest->getYYYYMMDDfromSeparateRequest());
		return $sResultUrl;
	}

}